TCP 和 UDP 区别是什么
传输层的两个协议
TCP: 有链接、可靠,缓慢的,双向的保证交付保证消息顺序的,基于字节流传输控制协议 Transfer Control Protocol UDP: 无连接(不需要三次握手) 不可靠,没序列,但快速的。头部开销小,可一对多,直播, User Data protocal 用户数据报
链接
TCP 三次握手有连接 UDP: 无连接
可靠
TCP: 可靠,丢失会重发 UDP: 不可靠,不提供任何交付保证
有序
TCP: 有序 UDP:不保证顺序
速度
TCP 慢 UDP 快速
头大小
TCP 头大 20 字节 序列号、ACK 号 数据偏移量、控制位、窗口、紧急指针、源端口、目标端口 UDP 头小 8 字节 源端口、目标端口、校验和、长度
拥塞或流控制
TCP 有流量控制,窗口大小 UDP 不能进行流量控制
端口号为什么最大 65536
源端口号一共是 16 位,所以 2^16-1 = 65535
UDP 应用
DNS DHCP
TCP 信号位
ACK 确认 PSH 发送 RST 重发 SYN 序号 FIN 断开 URG 紧急
TCP 问题
- tpc 顺序问题造成的对头阻塞
- 慢启动
- time-wait 占用端口